An embodiment relates to object arbitration for control systems.
Systems which provide safety functions typically utilize redundant controllers to ensure that operation of such functions can be maintained in the event of a failure. In control systems, data is provided to a controller or similar and tasks are executed based on the input data. It is not uncommon for multiple processors or a multi-core processor to execute a same function for redundancy purposes, which can assist in determining whether a fault is present in the output results of the executed function. However, when conflicting results are output from the different processors or the multi-core processor executing the same function, arbitration is performed to determine which results should be utilized. For control systems that utilize an odd number of processors, the result associated with the majority wins out. However, if an even number of processors is used, then a split decision is present. Systems without a robust arbitration technique may just use the output result of the designated master. However, the issue is the result from the designated master could be the fault controller or core resulting in incorrect control actions as a result of the utilizing the results with the errors. In addition, the amount of information that may have to be obtained and recorded from the various redundant processing can be large and computationally intensive.